大家好,這裡是鐵匠史密斯~
今日我會介紹一些Ray Casting 算法的前置作業,不會寫到code
在開始演算法之前,我們需要定義所需的基礎,才可以了解每個現象的原理~
今日主角是fPlayerX 、 fPlayerY
fPlayerX & fPlayerY 的定義看字面可知 fPlayerX 以及 fPlayerY 是玩家在遊戲中的地圖 map 的位置 (x, y)
我們已經確立一個大小 16 x 16 的 map(由 1-D 的擴充字元陣列組成),如圖:

假如我們初始化玩家在(8, 3)的位置,代表:
float fPlayerX{ 8.0f };
float fPlayerY{ 3.0f };
特別的一點是,記得 fPlayerX 以及 fPlayerY 是 float 浮點數,之後會提及到,跟光(Ray)有關~
所以,在 16 x 16 ( nMapWidth = nMapHeight = 16 的世界地圖 map 上像是:
map[fPlayerY * nMapHeight + fPlayerX] = map[3 * 16 + 8] = map[56]
再次提醒: 不管是 screen 還是 map , 我們都是以 1-D 矩陣來表示 2-D 的世界~
用圖表示的話,像是這樣:
fPlayerx & fPlayery
map
為了延長30天的壽命,我需要把一些內容切得更精細lol
明日會再度回到 screen , 來談談 screen 在遊戲世界中扮演什麼角色~
我們繼續走下去~